敏捷採用的時機
在聊聊什麼是敏捷前,我想先談談一個知名的『Stacey Matrix』的解釋模型,『Stacey Matrix』是由管理學大師『斯塔塞』(Stacey)用『共識度』(Agreement)與『確定性』(Certainty)兩個維度分析事情複雜度的方式:
-
簡單(Simple):容易有共識且確定性很高。
-
繁雜(Complicated):『不容易有共識且確定性很高』或『容易有共識且確定性不高』。
-
複雜(Complex):不容易有共識且確定性不高。
-
混亂(Anarchy):非常不容易有共識且完全沒有確定性。
老實說,這概念看似很簡單,但其實不好理解。最近剛好有看到一篇文章『When to use waterfall, when agile?』,其中的看法,我覺得比較淺顯易懂,作者首先把 Stacey Matrix 調整一下運用在討論『敏捷方法』上。我覺得方便初學敏捷者了解一下。
圖中橫軸(x-axis)是表示『如何做』(How),指的是『技術的複雜程度』,如果之前有做過,也能明確了解技術流程,就是『已知的』(Known)技術,橫軸離原點越近,表示『已知程度』越高,離原點越遠,表示是『未知的』(Unknown)技術,『未知程度』越高。
圖中縱軸(y-axis)則是表示『做什麼』(What),說明的是對需求的『了解程度』(Clear),如果『了解程度』越高則越靠近原點,如果『完全不了解』(Unclear)則離原點越遠,因此我簡單整理如下:
-
簡單(Simple):知道的已知工作(Known Knowns),流程固定且無變化的工作適合『瀑布開發法』(Waterfall)。
-
繁雜(Complicated):知道的未知工作(Known Unknowns),如果是需求不是很明確,但是技術難度不高,,如社會或政治環境的事務,無法接受需求或結果不明確,可採用『瀑布開發法』(Waterfall)或『敏捷方法』(Agile)。如果是需求很明確,但技術難度有點不確定性,則建議採用『敏捷方法』。
-
複雜(Complex):不知道的未知工作(Unknown Unknowns),可能是需求不是很明確,而且技術複雜程度也不低。這時候在減少風險與不確定性的前提下,運用『Scrum 方法』的快速迭代,小規模實驗取得對整理的了解是一種不錯的選擇。
-
混亂(Anarchy):無法知道的工作(Unknowables),因為需求與技術都有高度的風險,因此採用『看板方法』(Kanban)專注在當下最重要的事情(Working In Progress),持續產出結果,慢慢找出更明確的方向。
原文請參考:【文思不藏私】 敏捷幼幼班~敏捷適合的時機